#include <cstdio>
#include <algorithm>
#include <stack>
using namespace std;
stack<int> s;
int n;
const int N=1e5+50;
int a[N];
int main(void){
    int c=1;
    while(~scanf("%d",&n)){
        int ans=0;
        while(!s.empty()){
            s.pop();
        }
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        for(int i=0;i<n;i++){
            if(a[i]==0){
                //空地必须分割，清空单调栈
                while(!s.empty()){
                    s.pop();
                }
            }
            else{
                if(s.empty()){
                    s.push(a[i]);
                    ans++;
                }
                else{
                    //从栈底到栈顶单调递增的栈
                    while(!s.empty() && s.top()>a[i]){
                        s.pop();
                    }
                    if(s.empty() || s.top()<a[i]){
                        ans++;
                    }
                    s.push(a[i]);
                    //printf("%d\n",int(s.size()));
                }
            }
        }
        printf("Case %d: %d\n",c++,ans);
    }
    return 0;
}